package org.jeecg.modules.param.member.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.param.member.entity.BikeMemberUserCard;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.List;

@Data
@TableName("UserCard")
@ApiModel(value="UserCard对象", description="会员用户卡管理")
public class UserCard {
    private static final long serialVersionUID = 1L;

    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
    /**会员号*/
    @Excel(name = "会员号", width = 15)
    @ApiModelProperty(value = "会员号")
    private java.lang.String code;
    /**会员名称*/
    @Excel(name = "会员名称", width = 15)
    @ApiModelProperty(value = "会员名称")
    private java.lang.String name;
    /**身份证号*/
    @Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    private java.lang.String idCard;
    /**性别*/
    @Excel(name = "性别", width = 15, dicCode = "sex")
    @Dict(dicCode = "sex")
    @ApiModelProperty(value = "性别")
    private java.lang.String sex;
    /**注册类型*/
    @Excel(name = "注册类型", width = 15, dicCode = "register_type")
    @Dict(dicCode = "register_type")
    @ApiModelProperty(value = "注册类型")
    private java.lang.String registerType;
    /**会员卡号*/
    @Excel(name = "IC卡编码", width = 15)
    @ApiModelProperty(value = "会员卡号")
    private java.lang.String cardCode;
    /**会员卡号*/
    @Excel(name = "会员卡号", width = 15)
    @ApiModelProperty(value = "会员卡号")
    private java.lang.String cardNumber;
    /**会员卡类型*/
    @Excel(name = "卡类型", width = 15,dicCode = "card_type")
    @Dict(dicCode = "card_type")
    @ApiModelProperty(value = "会员卡类型")
    private java.lang.String cardType;
    /**创建时间*/
    @Excel(name = "注册时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
    /**余额*/
    @Excel(name = "余额(元)", width = 15)
    @ApiModelProperty(value = "余额")
    private java.math.BigDecimal balance;
    /**卡状态(1正常2挂失3注销4无卡)*/
    @Excel(name = "卡状态", width = 15,dicCode = "card_status")
    @Dict(dicCode = "card_status")
    @ApiModelProperty(value = "卡状态(1正常2挂失3注销4无卡)")
    private java.lang.String cardStatus;
    /**用户状态(1正常2黑名单3注销)*/
    @Excel(name = "会员状态", width = 15, dicCode = "member_status")
    @Dict(dicCode = "member_status")
    @ApiModelProperty(value = "用户状态(1正常2黑名单3注销)")
    private java.lang.String status;
    /**会员乘车状态 1 扫码骑行 2 刷卡骑行 3 未借车 4 骑行中（停止计费）5 未支付*/
    @Excel(name = "骑行状态", width = 15,dicCode = "ride_status")
    @ApiModelProperty(value = "会员乘车状态1 扫码骑行 2 刷卡骑行 3 未借车 4 骑行中（停止计费）5 未支付")
    @Dict(dicCode = "ride_status")
    private java.lang.String userRideStatus;
    /**详细地址*/
    @Excel(name = "居住地址", width = 20)
    @ApiModelProperty(value = "详细地址")
    private java.lang.String address;


    /**年龄*/
    @Excel(name = "年龄", width = 0)
    @ApiModelProperty(value = "年龄")
    private java.lang.Integer age;
    /**手机号*/
    @ApiModelProperty(value = "手机号")
    private java.lang.String phone;
    /**登陆密码*/
    @ApiModelProperty(value = "登陆密码")
    private java.lang.String password;
    /**是否实名认证*/
    @ApiModelProperty(value = "是否实名认证")
    private java.lang.String isCertification;




    /**注册时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "注册时间")
    private java.util.Date registerTime;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;

    /**修改人*/
    @ApiModelProperty(value = "修改人")
    private java.lang.String updateBy;
    /**修改时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private java.util.Date updateTime;
    /**备注*/
    @ApiModelProperty(value = "备注")
    private java.lang.String memo;
    /**密码盐*/
    @ApiModelProperty(value = "密码盐")
    private String salt;
    @ApiModelProperty(value = "")
    @TableField(exist = false)
    private String Sms;
    @ApiModelProperty(value = "充值金额")
    @TableField(exist = false)
    private BigDecimal pay;

    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String cardId;
    /**用户编码*/
    @ApiModelProperty(value = "用户编码")
    private java.lang.String userId;
    /**用户类型(1会员用户2管理用户)*/
    /*
    @Excel(name = "用户类型(1会员用户2管理用户)", width = 15)
    */
    @Dict(dicCode = "member_type")
    @ApiModelProperty(value = "用户类型(1会员用户2管理用户)")
    private java.lang.String userType;


    /**发卡时间*/
    /*
    @Excel(name = "发卡时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "发卡时间")
    private java.util.Date cardTime;
    /**挂失时间*/
    /*
    @Excel(name = "挂失时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "挂失时间")
    private java.util.Date cardLossTime;
    /**注销时间*/
    /*
    @Excel(name = "注销时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "注销时间")
    private java.util.Date cardCancelTime;


    /**卡费*/
    @Excel(name = "押金", width = 0)
    @ApiModelProperty(value = "押金")
    private BigDecimal cardFee;

    @ApiModelProperty(value = "卡费")
    @TableField(exist = false)
    private BigDecimal deposit;


    @ApiModelProperty(value = "是否欠费")
    @Dict(dicCode = "yn")
    @TableField(exist = false)
    private java.lang.String isArrears;

    //忽略 用于判断是否欠费
    @ApiModelProperty(value = "用户组")
    @TableField(exist = false)
    private List<String> userArray;



}
